package com.ssh.dao;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * 基础DAO接口提供基本操作方法的原型
 */
public interface IBaseDao<T> {
    /**
     * 添加一个对象
     * @param t 对象
     */
    void add(T t);

    /**
     * 根据主键删除对象数据
     */
    void delete(T t);

    /**
     * 更新对象数据
     * @param t 对象
     */
    void update(T t);

    /**
     * 根据主键查询对象数据
     * @param id 主键
     * @return 对象
     */
    T findById(Serializable id);

    /**
     * 查询某实体所有的数据
     * @return 对象集合
     */
    List<T> findAll();
    
    /**
     * 按条件查询实体对象
     * @param conditions 查询的条件
     * @return 对象集合
     */
    List<T> findByConditions(Map<String, Object> conditions);
}
